Adaptive Concretization for Parallel Program Synthesis
نویسندگان
چکیده
Program synthesis tools work by searching for an implementation that satisfies a given specification. Two popular search strategies are symbolic search, which reduces synthesis to a formula passed to a SAT solver, and explicit search, which uses brute force or random search to find a solution. In this paper, we propose adaptive concretization, a novel synthesis algorithm that combines the best of symbolic and explicit search. Our algorithm works by partially concretizing a randomly chosen, but likely highly influential, subset of the unknowns to be synthesized. Adaptive concretization uses an online search process to find the optimal size of the concretized subset using a combination of exponential hill climbing and binary search, employing a statistical test to determine when one degree of concretization is sufficiently better than another. Moreover, our algorithm lends itself to a highly parallel implementation, further speeding up search. We implemented adaptive concretization for Sketch and evaluated it on a range of benchmarks. We found adaptive concretization is very effective, outperforming Sketch in many cases, sometimes significantly, and has good parallel scalability.
منابع مشابه
An empirical study of adaptive concretization for parallel program synthesis
Adaptive concretization is a program synthesis technique that enables efficient parallelization of challenging synthesis problems. The key observation behind adaptive concretization is that in a challenging synthesis problem, there are some unknowns that are best suited for explicit search and some that are best suited for symbolic search through constraint solving. At a high level, the main id...
متن کاملTitle of dissertation : FRAMEWORK SYNTHESIS FOR SYMBOLIC EXECUTION OF EVENT - DRIVEN FRAMEWORKS
Title of dissertation: FRAMEWORK SYNTHESIS FOR SYMBOLIC EXECUTION OF EVENT-DRIVEN FRAMEWORKS Jinseong Jeon, Doctor of Philosophy, 2016 Dissertation directed by: Professor Jeffrey S. Foster Department of Computer Science Symbolic execution is a powerful program analysis technique, but it is very challenging to apply to programs built using event-driven frameworks, such as Android. The main reaso...
متن کاملFramework synthesis for Symbolic Execution of Event-Driven Frameworks
Title of dissertation: FRAMEWORK SYNTHESIS FOR SYMBOLIC EXECUTION OF EVENT-DRIVEN FRAMEWORKS Jinseong Jeon, Doctor of Philosophy, 2016 Dissertation directed by: Professor Jeffrey S. Foster Department of Computer Science Symbolic execution is a powerful program analysis technique, but it is very challenging to apply to programs built using event-driven frameworks, such as Android. The main reaso...
متن کاملAdaptive Line Enhancement Using a Parallel IIR Filter with A Step-By-step Algorithm
A step-by-step algorithm for enhancement of periodic signals that are highly corrupted by additive uncorrelated white gausian noise is proposed. In each adaptation step a new parallel second-order section is added to the previous filters. Every section has only one adjustable parameter, i.e., the center frequency of the self-tuning filter. The bandwidth and the convergence factor of each secti...
متن کاملPolymorphic typed defunctionalization and concretization
Defunctionalization is a program transformation that eliminates functions as first-class values. We show that defunctionalization can be viewed as a type-preserving transformation of an extension of System F with guarded algebraic data types into itself. We also suggest that defunctionalization is an instance of concretization, a more general technique that allows eliminating constructs other t...
متن کامل